package cn.zyq.charging.order.feign;

import cn.zyq.charging.common.pojo.JsonResult;
import cn.zyq.charging.common.pojo.vo.UserInfoVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.math.BigDecimal;

//@FeignClient注解的值要和nacos服务列表里的服务名称一致
@FeignClient("userService")
public interface UserClient {
    //springCloud框架会自动实现此接口(用动态代理为此接口生成一个代理对象)，并实现接口中的抽象方法

    /**
     * 订单模块调用用户模块： 获取用户车辆信息
     * @param userId
     * @return
     */
    @GetMapping("/user/info/{userId}")
    JsonResult<UserInfoVO>  getUserInfo(@PathVariable("userId") Integer userId);

    /**
     * 订单模块调用用户模块： 获取用户余额信息
     * @param userId
     * @return
     */
    @GetMapping("/user/balance/{userId}")
    JsonResult<BigDecimal>  getUserBalance(@PathVariable("userId") Integer userId);
    //@PathVariable 是 Spring MVC 中的一个注解，用于从 URI 模板中提取路径变量的值。它通常用在控制器（Controller）的方法参数中，将 URL 中的占位符绑定到方法的参数上。

}




